﻿// Copyright (c) Vitaly Kamiansky. All rights reserved. 
// See License.txt in the project root.

using System;

namespace Property
{
    public interface IReloaderPrototype<T>
    {
        /// <summary>
        /// Create a new instance of the property reloader.
        /// </summary>
        /// <param name="getValue">Tell me how to get new values for the property.</param>
        /// <param name="applyValue">Tell me how to set the property's Value.</param>
        /// <param name="applyStatus">Tell me how to set the property's IsLoading status.</param>
        IReloader Create(Func<T> getValue, Action<T> applyValue, Action<bool> applyStatus);
    }
}
